libobs_wrapper\data\properties\types/
text.rs

1use getters0::Getters;
2
3use crate::data::properties::{get_enum, macros::assert_type, ObsTextInfoType, ObsTextType};
4
5use super::PropertyCreationInfo;
6
7#[derive(Debug, Getters, Clone)]
8#[skip_new]
9pub struct ObsTextProperty {
10    name: String,
11    description: Option<String>,
12    monospace: bool,
13    text_type: ObsTextType,
14    info_type: ObsTextInfoType,
15    word_wrap: bool,
16}
17
18impl From<PropertyCreationInfo> for ObsTextProperty {
19    fn from(
20        PropertyCreationInfo {
21            name,
22            description,
23            pointer,
24        }: PropertyCreationInfo,
25    ) -> Self {
26        assert_type!(Text, pointer);
27
28        let info_type = get_enum!(pointer, text_info_type, ObsTextInfoType);
29        let text_type = get_enum!(pointer, text_type, ObsTextType);
30
31        let monospace = unsafe { libobs::obs_property_text_monospace(pointer) };
32        let word_wrap = unsafe { libobs::obs_property_text_info_word_wrap(pointer) };
33
34        ObsTextProperty {
35            name,
36            description,
37            monospace,
38            text_type,
39            info_type,
40            word_wrap,
41        }
42    }
43}